<HTML>
<HEAD>
<TITLE>JavaScript Source Code 3000:  Games:  Decoder Ring</TITLE>
<META HTTP-EQUIV="JavaScript Source Code 3000" CONTENT = "no-cache">
<META NAME="date" CONTENT="2000-09-09">
<META NAME="channel" CONTENT="Web Developer">
<META NAME="author" CONTENT="Colin Russell (niloc12@hotmail.com)">
<META NAME="section" CONTENT="Games">
<META NAME="description" CONTENT="Playing spy games are always fun -- but why not act the part?  This decoder ring script allows you to send 'spy' messages back and forth by encoding your message with a key offset value.  Then, just send the message, key code, and a link to the decoder ring script to your friend to let them read it.  Understandably, it's simple encryption, but it works good enough for us!  Cool!">

<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Colin Russell (niloc12@hotmail.com) -->
<!-- Web Site:  http://www.geocities.com/niloc12.geo -->




<!-- Begin
var wt = ""; //temporary holder
var et = ""; //encoded text
var all = "";
var all2 = "";
var alpha2 = "abcdefghijklmnopqrstuvwxyz";
var a = "a"; var b = "b"; var c = "c"; var d = "d";
var e = "e"; var f = "f"; var g = "g"; var h = "h";
var i = "i"; var j = "j"; var k = "k"; var l = "l";
var m = "m"; var n = "n"; var o = "o"; var p = "p";
var q = "q"; var r = "r"; var s = "s"; var t = "t";
var u = "u"; var v = "v"; var w = "w"; var x = "x";
var y = "y"; var z = "z";
var alpha = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

function encode() {
wt = "";
et = "";
all = "";
var theText = document.f1.ta1.value.toLowerCase();
var num = document.f1.tb1.value;
i2 = 0;
for (i = 0; i < num; i++) { 
i2 = i2 + 1;
if (i2 == 26) i2 = 0;
}
a = alpha[i2]; i2 = next(i2);
b = alpha[i2]; i2 = next(i2);
c = alpha[i2]; i2 = next(i2);
d = alpha[i2]; i2 = next(i2);
e = alpha[i2]; i2 = next(i2);
f = alpha[i2]; i2 = next(i2);
g = alpha[i2]; i2 = next(i2);
h = alpha[i2]; i2 = next(i2);
i = alpha[i2]; i2 = next(i2);
j = alpha[i2]; i2 = next(i2);
k = alpha[i2]; i2 = next(i2);
l = alpha[i2]; i2 = next(i2);
m = alpha[i2]; i2 = next(i2);
n = alpha[i2]; i2 = next(i2);
o = alpha[i2]; i2 = next(i2);
p = alpha[i2]; i2 = next(i2);
q = alpha[i2]; i2 = next(i2);
r = alpha[i2]; i2 = next(i2);
s = alpha[i2]; i2 = next(i2);
t = alpha[i2]; i2 = next(i2);
u = alpha[i2]; i2 = next(i2);
v = alpha[i2]; i2 = next(i2);
w = alpha[i2]; i2 = next(i2);
x = alpha[i2]; i2 = next(i2);
y = alpha[i2]; i2 = next(i2);
z = alpha[i2]; i2 = next(i2);
var all = a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z;
all = all.split("");
encode2(all);
}
function next(x) {
if (x == 25) x = -1;
x = x + 1;
return x;
}
function encode2(all2) {
var temp2 = document.f1.ta1.value.toLowerCase();
temp2 = temp2.split("");
var q = 0;
while (q < temp2.length) { 
wt = temp2[q];
var where = alpha2.indexOf(wt);
if (where == -1) { et += wt; }
if (where != -1) { et += all2[where]; }
q = q + 1;
}
document.f1.ta1.value = et;
}
function decode() {
wt = "";
et = "";
all = "";
all3 = "";
var theText = document.f1.ta1.value.toLowerCase();
var num = document.f1.tb1.value;
i2 = 0;
for (i = 0; i < num; i++) {
i2 = i2 + 1;
if (i2 == 26) i2 = 0;
}
a = alpha[i2]; i2 = next(i2);
b = alpha[i2]; i2 = next(i2);
c = alpha[i2]; i2 = next(i2);
d = alpha[i2]; i2 = next(i2);
e = alpha[i2]; i2 = next(i2);
f = alpha[i2]; i2 = next(i2);
g = alpha[i2]; i2 = next(i2);
h = alpha[i2]; i2 = next(i2);
i = alpha[i2]; i2 = next(i2);
j = alpha[i2]; i2 = next(i2);
k = alpha[i2]; i2 = next(i2);
l = alpha[i2]; i2 = next(i2);
m = alpha[i2]; i2 = next(i2);
n = alpha[i2]; i2 = next(i2);
o = alpha[i2]; i2 = next(i2);
p = alpha[i2]; i2 = next(i2);
q = alpha[i2]; i2 = next(i2);
r = alpha[i2]; i2 = next(i2);
s = alpha[i2]; i2 = next(i2);
t = alpha[i2]; i2 = next(i2);
u = alpha[i2]; i2 = next(i2);
v = alpha[i2]; i2 = next(i2);
w = alpha[i2]; i2 = next(i2);
x = alpha[i2]; i2 = next(i2);
y = alpha[i2]; i2 = next(i2);
z = alpha[i2]; i2 = next(i2);
var all = a+b+c+d+e+f+g+h+i+j+k+l
+m+n+o+p+q+r+s+t+u+v+w+x+y+z;
all3 = all;
all = all.split("");
decode2(all3);
}
function decode2(all2) { 
var alpha2 = "abcdefghijklmnopqrstuvwxyz";
alpha2 = alpha2.split("");
var temp2 = document.f1.ta1.value.toLowerCase();
temp2 = temp2.split("");
var v = 0;
while (v < temp2.length) {
wt = temp2[v];
var where = all2.indexOf(wt);
if (where == -1) { et += wt; }
if (where != -1) { et += alpha2[where]; }
v = v + 1;
}
document.f1.ta1.value = et;
}
//  End -->
</script>
</HEAD>

<BODY BGCOLOR=#ffffff vlink=#0000ff>

<BR>
<center>
<table width=600 cellpadding=0 cellspacing=10>
<tr>
<td width=468 align=center>

    
    
</td>
<td width=120 align=center>
    
</td>
</tr>
</table>
<BR>
<BR>
<basefont size=3>
<FONT SIZE="+2" FACE="Helvetica,Arial">
<A HREF="../index.htm" /" TARGET="_top"><FONT COLOR="#0000FF"><b>Home</b></font></A>
<img src="../img/arrow.gif" /img/arrow.gif" height=13 width=7 border=0 alt="}">
<A HREF="index.htm" /games/"><font color="#FF0000"><b>Games</b></font></A>
<img src="../img/arrow.gif" /img/arrow.gif" height=13 width=7 border=0 alt="}">
<FONT COLOR="#006666"><b>Decoder Ring</b></font></font>
<BR>
<BR>
<table BORDER=0 WIDTH=486 CELLPADDING=3 CELLSPACING=0>
<tr><td><font FACE="helvetica,arial,geneva">
<br>
<br>
<!-- Description --><!--content_start-->
Playing spy games are always fun -- but why not act the part?  This decoder ring script allows you to send 'spy' messages back and forth by encoding your message with a key offset value.  Then, just send the message, key code, and a link to the decoder ring script to your friend to let them read it.  Understandably, it's simple encryption, but it works good enough for us!  Cool!
<hr>
</td></tr>
</table>
<!-- Demonstration -->
<center>
<form name=f1>
<textarea name=ta1 cols=40 rows=20>
</textarea>
<p>
Key Value:  <input type="text" size=10 name="tb1" value=""><br>
<input type="button" value="Encode Message" onClick="encode(); return false;">
<input type="button" value="Decode Message" onClick="decode(); return false;">
</form>
</center>
<P>
<P>
<a name="source">
<table BORDER=0 WIDTH=486 CELLPADDING=3 CELLSPACING=0>
<tr><td BGCOLOR=yellow><font FACE="helvetica,arial,geneva"><b>JavaScript Source Code 3000:  Games:  Decoder Ring</b>
<p>Simply click inside the window below, use your cursor to highlight the script, and copy (type Control-c or Apple-c) the script into a new file in your text editor (such as Note Pad or Simple Text) and save (Control-s or Apple-s).  The script is yours!!!
<br><br></font></td></tr>
<tr><td BGCOLOR=yellow ALIGN=CENTER>
<form NAME="copy">

<DIV align="center">
<input type=button value="Highlight All" onClick="javascript:this.form.txt.focus();this.form.txt.select();">&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="text" NAME="total" VALUE="Script Size:  4.59 KB" size=24>
</DIV>

<textarea NAME="txt" ROWS=20 COLS=75 WRAP=VIRTUAL>

&lt;!-- TWO STEPS TO INSTALL DECODER RING:

  1.  Copy the coding into the HEAD of your HTML document
  2.  Add the last code into the BODY of your HTML document  --&gt;

&lt;!-- STEP ONE: Paste this code into the HEAD of your HTML document  --&gt;

&lt;HEAD&gt;

&lt;SCRIPT LANGUAGE="JavaScript"&gt;
&lt;!-- Original:  Colin Russell (niloc12@hotmail.com) --&gt;
&lt;!-- Web Site:  http://www.geocities.com/niloc12.geo --&gt;

&lt;! &gt;
&lt;! &gt;

&lt;!-- Begin
var wt = ""; //temporary holder
var et = ""; //encoded text
var all = "";
var all2 = "";
var alpha2 = "abcdefghijklmnopqrstuvwxyz";
var a = "a"; var b = "b"; var c = "c"; var d = "d";
var e = "e"; var f = "f"; var g = "g"; var h = "h";
var i = "i"; var j = "j"; var k = "k"; var l = "l";
var m = "m"; var n = "n"; var o = "o"; var p = "p";
var q = "q"; var r = "r"; var s = "s"; var t = "t";
var u = "u"; var v = "v"; var w = "w"; var x = "x";
var y = "y"; var z = "z";
var alpha = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

function encode() {
wt = "";
et = "";
all = "";
var theText = document.f1.ta1.value.toLowerCase();
var num = document.f1.tb1.value;
i2 = 0;
for (i = 0; i &lt; num; i++) { 
i2 = i2 + 1;
if (i2 == 26) i2 = 0;
}
a = alpha[i2]; i2 = next(i2);
b = alpha[i2]; i2 = next(i2);
c = alpha[i2]; i2 = next(i2);
d = alpha[i2]; i2 = next(i2);
e = alpha[i2]; i2 = next(i2);
f = alpha[i2]; i2 = next(i2);
g = alpha[i2]; i2 = next(i2);
h = alpha[i2]; i2 = next(i2);
i = alpha[i2]; i2 = next(i2);
j = alpha[i2]; i2 = next(i2);
k = alpha[i2]; i2 = next(i2);
l = alpha[i2]; i2 = next(i2);
m = alpha[i2]; i2 = next(i2);
n = alpha[i2]; i2 = next(i2);
o = alpha[i2]; i2 = next(i2);
p = alpha[i2]; i2 = next(i2);
q = alpha[i2]; i2 = next(i2);
r = alpha[i2]; i2 = next(i2);
s = alpha[i2]; i2 = next(i2);
t = alpha[i2]; i2 = next(i2);
u = alpha[i2]; i2 = next(i2);
v = alpha[i2]; i2 = next(i2);
w = alpha[i2]; i2 = next(i2);
x = alpha[i2]; i2 = next(i2);
y = alpha[i2]; i2 = next(i2);
z = alpha[i2]; i2 = next(i2);
var all = a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z;
all = all.split("");
encode2(all);
}
function next(x) {
if (x == 25) x = -1;
x = x + 1;
return x;
}
function encode2(all2) {
var temp2 = document.f1.ta1.value.toLowerCase();
temp2 = temp2.split("");
var q = 0;
while (q &lt; temp2.length) { 
wt = temp2[q];
var where = alpha2.indexOf(wt);
if (where == -1) { et += wt; }
if (where != -1) { et += all2[where]; }
q = q + 1;
}
document.f1.ta1.value = et;
}
function decode() {
wt = "";
et = "";
all = "";
all3 = "";
var theText = document.f1.ta1.value.toLowerCase();
var num = document.f1.tb1.value;
i2 = 0;
for (i = 0; i &lt; num; i++) {
i2 = i2 + 1;
if (i2 == 26) i2 = 0;
}
a = alpha[i2]; i2 = next(i2);
b = alpha[i2]; i2 = next(i2);
c = alpha[i2]; i2 = next(i2);
d = alpha[i2]; i2 = next(i2);
e = alpha[i2]; i2 = next(i2);
f = alpha[i2]; i2 = next(i2);
g = alpha[i2]; i2 = next(i2);
h = alpha[i2]; i2 = next(i2);
i = alpha[i2]; i2 = next(i2);
j = alpha[i2]; i2 = next(i2);
k = alpha[i2]; i2 = next(i2);
l = alpha[i2]; i2 = next(i2);
m = alpha[i2]; i2 = next(i2);
n = alpha[i2]; i2 = next(i2);
o = alpha[i2]; i2 = next(i2);
p = alpha[i2]; i2 = next(i2);
q = alpha[i2]; i2 = next(i2);
r = alpha[i2]; i2 = next(i2);
s = alpha[i2]; i2 = next(i2);
t = alpha[i2]; i2 = next(i2);
u = alpha[i2]; i2 = next(i2);
v = alpha[i2]; i2 = next(i2);
w = alpha[i2]; i2 = next(i2);
x = alpha[i2]; i2 = next(i2);
y = alpha[i2]; i2 = next(i2);
z = alpha[i2]; i2 = next(i2);
var all = a+b+c+d+e+f+g+h+i+j+k+l
+m+n+o+p+q+r+s+t+u+v+w+x+y+z;
all3 = all;
all = all.split("");
decode2(all3);
}
function decode2(all2) { 
var alpha2 = "abcdefghijklmnopqrstuvwxyz";
alpha2 = alpha2.split("");
var temp2 = document.f1.ta1.value.toLowerCase();
temp2 = temp2.split("");
var v = 0;
while (v &lt; temp2.length) {
wt = temp2[v];
var where = all2.indexOf(wt);
if (where == -1) { et += wt; }
if (where != -1) { et += alpha2[where]; }
v = v + 1;
}
document.f1.ta1.value = et;
}
//  End --&gt;
&lt;/script&gt;
&lt;/HEAD&gt;

&lt;!-- STEP TWO: Copy this code into the BODY of your HTML document  --&gt;

&lt;BODY&gt;

&lt;center&gt;
&lt;form name=f1&gt;
&lt;textarea name=ta1 cols=40 rows=20&gt;
&lt;/textarea&gt;
&lt;p&gt;
Key Value:  &lt;input type="text" size=10 name="tb1" value=""&gt;&lt;br&gt;
&lt;input type="button" value="Encode Message" onClick="encode(); return false;"&gt;
&lt;input type="button" value="Decode Message" onClick="decode(); return false;"&gt;
&lt;/form&gt;
&lt;/center&gt;

 

&lt;!-- Script Size:  4.59 KB --&gt;</textarea><br><font FACE="helvetica,arial,geneva"></font></td></tr>

</table>
</form>
</FONT>
</CENTER>


</center>
</body></html>